1. Field of the Invention
The present invention relates to three-dimensional graphics and animation, and more particularly, to an input device for manipulating a virtual camera in a computer graphics animation system in a manner that mimics the control of an actual camera.
2. Description of Related Art
Computer graphics (CG) animation is often used in the production of motion pictures and video games to create digital representations of a character in a scene. In a typical CG animation system, computer software tools are used to create and render virtual objects. The objects may be modified to produce a series of individual frames that are successively displayed in the form of a movie or video file, thereby giving the object the appearance of motion. A technique used to generate source data for CG animation is known as motion capture, in which the movement of a real object is mapped onto a computer generated object. In a motion capture system, an actor wears a suit having markers attached at various locations (e.g., small reflective markers attached to the body and limbs) and digital cameras record the movement of the actor from different angles while illuminating the markers. The system then analyzes the images to determine the locations (e.g., as spatial coordinates) and orientation of the markers on the actor's suit in each frame. By tracking the locations of the markers, the system creates a spatial representation of the markers over time and builds a digital representation of the actor in motion. The motion is then applied to a digital representation, which may then be textured and rendered to produce a complete CG representation of the actor and/or performance. This technique has been used by special effects companies to produce incredibly realistic animations in many popular movies.
An advantage of using a motion capture system in CG animation is that the source data represents a three-dimensional view of the captured motion. In other words, the captured motion data can be viewed from almost any perspective. Conventional CG animation software tools enable an animation producer to set virtual cameras to view the source data from desired angles, such as a perspective view, a top view a front view, etc. Moreover, the virtual cameras may be moved using software tools to follow action within a virtual scene. One technique used to move the virtual camera is to set keyframes defining transition points for changes in the camera motion. For example, one keyframe may define a first point at which the virtual camera will begin to pan (i.e., lateral motion) to follow the action, and a second keyframe may define a second point at with the virtual camera will stop panning. The software tools will then automatically move the virtual camera during the time between the two keyframes to produce a view of the source data reflecting the desired camera motion. The keyframing technique is advantageous in that it significantly reduces the time needed to produce a CG animation.
A drawback of the keyframing technique is that the movement of the virtual camera generally appears very mechanical and lacks the human touch that characterizes physical camera movements used in conventional live action film production. In a live action production, the camera is moved to follow the action at a rate that may vary widely to suit the scene. For example, the camera may pan to follow movement, then hesitate slightly at one point to emphasize an object in the scene, and then continue with the movement. Moreover, the camera movement may comprise a complex combination of pan, tilt, roll and focus motions. While these types of actions can be controlled using conventional software tools by setting a greater number of key frames, this lacks the spontaneity and artistic composition that is achieved with physical camera movement.
A related drawback of the keyframing technique is that the software tools require a reasonably high level of skill and knowledge in order to perform a complex virtual camera movement. For this reason, keyframing is generally performed using an experienced CG animation software operator, even though these software operators often lack the experience and artistic skill of professional cameramen or cinematographers. At the same time, professional cameramen that are very experienced in controlling a camera often have no training in the use of CG animation software tools. The movement of professional movie cameras is generally performed using a mechanical interface, such as rotary hand actuator or wheel, that is manipulated while observing the action. Professional cameramen develop an artistic skill in controlling the motion of the camera that cannot be easily translated to the control of software tools utilizing keystroke and mouse click commands. While it is possible to have a collaboration between software operators and cameramen to bring both sets of skills to the task, such efforts are unduly cumbersome and ultimately increase the production cost.
Accordingly, it would be desirable to provide an interface for a computer graphics animation system that overcomes these and other drawbacks of the prior art. More specifically, it would be desirable to provide an input device for manipulating a virtual camera in a computer graphics animation system in a manner that mimics the control of an actual camera.